// PNGHack 1.0 beta 4
// Copyright (c) 2008 Yves Van Goethem and png-hack project contributors
// http://code.google.com/p/png-hack/
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// 
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
// 
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
document.write('<style type="text/css">.hack-png{visibility:hidden}</style>');
var PNGHack = function(spacer) {
	var d = document;
	return {
		go : function(elm) {
			var elm = (!elm || elm == '*') ? d.all : d.getElementsByTagName(elm);
			for (var i = 0; i < elm.length; ++i) {
				if (elm[i].className.match(/\bhack-png\b/))
					this.hack(elm[i], arguments[1]);
			}
		},
		hack : function(elm) {
			var style = elm.style;
			var source = arguments[1] || 'src';
			if (!elm.pngsrc) {
				this.elements.push(elm);
				elm.pngsrc = elm.getAttribute(source);
			}
			style.width = elm.clientWidth;
			style.height = elm.clientHeight;
			style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+elm.pngsrc+"',sizingMethod='scale')";
			elm.setAttribute(source, spacer || 'images/spacer.gif');
			style.visibility = 'visible';
		},
		elements : []
	};
};